home *** CD-ROM | disk | FTP | other *** search
/ BBS Toolkit / BBS Toolkit.iso / doors_1 / hof100.zip / SOURCE.ZIP / HOF.PAS < prev   
Pascal/Delphi Source File  |  1992-02-24  |  3KB  |  142 lines

  1. PROGRAM HallOfFame;
  2.  
  3. USES DOS,BigStrng;
  4.  
  5. CONST
  6.   MaxNames = 6;
  7.   Blanks   = '                 ';
  8.  
  9. TYPE
  10.   String17 = STRING[17];
  11.   String2  = STRING[2];
  12.  
  13. VAR
  14.   PlayerName,PlayerDate : ARRAY [1..6] OF String17;
  15.   f : TEXT;
  16.   i : INTEGER;
  17.  
  18. PROCEDURE GetOldNames;
  19. BEGIN
  20.   ASSIGN(f,'HOF.DAT');
  21.   {$I-} RESET(f); {$I+}
  22.   IF IORESULT=0 THEN BEGIN
  23.     FOR i:=1 TO MaxNames DO BEGIN
  24.       READLN(f,PlayerName[i]);
  25.       PlayerName[i]:=PlayerName[i]+Blanks;
  26.       READLN(f,PlayerDate[i]);
  27.       PlayerDate[i]:=PlayerDate[i]+Blanks;
  28.     END;
  29.     Close(f);
  30.   END ELSE BEGIN
  31.     ASSIGN(f,'HOF.DAT');
  32.     REWRITE(f);
  33.     FOR i:=1 TO MaxNames DO BEGIN
  34.       PlayerName[i]:=Blanks;
  35.       PlayerDate[i]:=Blanks;
  36.       WRITELN(f,PlayerName[i]);
  37.       WRITELN(f,PlayerDate[i]);
  38.     END;
  39.     CLOSE(f);
  40.   END;
  41. END;
  42.  
  43. FUNCTION lz(i:INTEGER) : String2;
  44. VAR
  45.   s : String2;
  46. BEGIN
  47.   STR(i:2,s);
  48.   IF i<10 THEN s[1]:='0';
  49.   lz:=s;
  50. END;
  51.  
  52. PROCEDURE GetNewName(VAR name,date : String17);
  53. VAR
  54.   tm : LONGINT;
  55.   dt : DateTime;
  56. BEGIN
  57.   ASSIGN(f,'WINNERS.TOP');
  58.   {$I-} RESET(f); {$I+}
  59.   IF IORESULT=0 THEN BEGIN
  60.     READLN(f,i);
  61.     READLN(f,name);
  62.     name:=name+Blanks;
  63.     GETFTIME(f,tm);
  64.     UNPACKTIME(tm,dt);
  65.     WITH dt DO
  66.       date:=lz(month)+'/'+lz(day)+'/'+lz(year-1900)+' '+lz(hour)+':'+lz(min)+Blanks;
  67.     CLOSE(f);
  68.   END ELSE BEGIN
  69.     Writeln('WINNERS.TOP not found!');
  70.     Halt(1);
  71.   END;
  72. END;
  73.  
  74. PROCEDURE SaveNewNames;
  75. BEGIN
  76.   ASSIGN(f,'HOF.DAT');
  77.   REWRITE(f);
  78.   FOR i:=1 TO MaxNames DO BEGIN
  79.     WRITELN(f,PlayerName[i]);
  80.     WRITELN(f,PlayerDate[i]);
  81.   END;
  82.   CLOSE(f);
  83. END;
  84.  
  85. PROCEDURE UpdateBulletin;
  86. VAR
  87.   bs,bs1 : BigString;
  88.   ch : CHAR;
  89.  
  90.   PROCEDURE Rep(old,new:String17);
  91.   BEGIN
  92.     SetBigString(bs1,old);
  93.     i:=BigPos(bs1,bs);
  94.     BigDelete(bs,i,17);
  95.     SetBigString(bs1,new);
  96.     BigInsert(bs1,bs,i);
  97.   END;
  98.  
  99. BEGIN
  100.   ASSIGN(f,'HOF.ANS');
  101.   {$I-} RESET(f); {$I+}
  102.   IF IORESULT<>0 THEN BEGIN
  103.     WRITELN('HOF.ANS not found!');
  104.     HALT(1);
  105.   END;
  106.   bs.length:=0;
  107.   WHILE NOT EOF(f) DO BEGIN
  108.     READ(f,ch);
  109.     INC(bs.length);
  110.     bs.ch[bs.length]:=ch;
  111.   END;
  112.   CLOSE(f);
  113.   Rep('11111111111111111',PlayerName[1]);
  114.   Rep('22222222222222222',PlayerName[2]);
  115.   Rep('33333333333333333',PlayerName[3]);
  116.   Rep('44444444444444444',PlayerName[4]);
  117.   Rep('55555555555555555',PlayerName[5]);
  118.   Rep('66666666666666666',PlayerName[6]);
  119.   Rep('AAAAAAAAAAAAAAAAA',PlayerDate[1]);
  120.   Rep('BBBBBBBBBBBBBBBBB',PlayerDate[2]);
  121.   Rep('CCCCCCCCCCCCCCCCC',PlayerDate[3]);
  122.   Rep('DDDDDDDDDDDDDDDDD',PlayerDate[4]);
  123.   Rep('EEEEEEEEEEEEEEEEE',PlayerDate[5]);
  124.   Rep('FFFFFFFFFFFFFFFFF',PlayerDate[6]);
  125.   ASSIGN(f,'BULLETIN.ANS');
  126.   REWRITE(f);
  127.   FOR i:=1 TO bs.length DO
  128.     WRITE(f,bs.ch[i]);
  129.   CLOSE(f);
  130. END;
  131.  
  132. BEGIN
  133.   Writeln('Hall Of Fame utility for Global War 2.40+ by Joel Bergen.  Version 1.0');
  134.   GetOldNames;
  135.   FOR i:= MaxNames DOWNTO 2 DO BEGIN
  136.     PlayerName[i]:=PlayerName[i-1];
  137.     PlayerDate[i]:=PlayerDate[i-1];
  138.   END;
  139.   GetNewName(PlayerName[1],PlayerDate[1]);
  140.   SaveNewNames;
  141.   UpdateBulletin;
  142. END.